package com.shengchao.examstar.rpc.question.resp;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 专项练习响应
 */
public class SpecialPracticeResp implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 专项练习ID（题集ID）
     */
    private Long practiceId;

    /**
     * 专项练习标题
     */
    private String title;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 知识点
     */
    private String knowledge;

    /**
     * 类目/科目
     */
    private String type;

    /**
     * 题目数量
     */
    private Integer questionCount;

    /**
     * 题目类型
     */
    private String questionType;

    /**
     * 难度级别
     */
    private String difficultyLevel;

    /**
     * 描述信息
     */
    private String description;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 题目ID列表
     */
    private List<Long> questionIds;

    /**
     * 生成状态（SUCCESS: 成功, FAILED: 失败, PROCESSING: 处理中）
     */
    private String status;

    /**
     * 错误信息（如果生成失败）
     */
    private String errorMessage;

    public SpecialPracticeResp() {}

    public Long getPracticeId() {
        return practiceId;
    }

    public void setPracticeId(Long practiceId) {
        this.practiceId = practiceId;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getKnowledge() {
        return knowledge;
    }

    public void setKnowledge(String knowledge) {
        this.knowledge = knowledge;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Integer getQuestionCount() {
        return questionCount;
    }

    public void setQuestionCount(Integer questionCount) {
        this.questionCount = questionCount;
    }

    public String getQuestionType() {
        return questionType;
    }

    public void setQuestionType(String questionType) {
        this.questionType = questionType;
    }

    public String getDifficultyLevel() {
        return difficultyLevel;
    }

    public void setDifficultyLevel(String difficultyLevel) {
        this.difficultyLevel = difficultyLevel;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public List<Long> getQuestionIds() {
        return questionIds;
    }

    public void setQuestionIds(List<Long> questionIds) {
        this.questionIds = questionIds;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    @Override
    public String toString() {
        return "SpecialPracticeResp{" +
                "practiceId=" + practiceId +
                ", title='" + title + '\'' +
                ", userId=" + userId +
                ", knowledge='" + knowledge + '\'' +
                ", type='" + type + '\'' +
                ", questionCount=" + questionCount +
                ", questionType='" + questionType + '\'' +
                ", difficultyLevel='" + difficultyLevel + '\'' +
                ", description='" + description + '\'' +
                ", createTime=" + createTime +
                ", questionIds=" + questionIds +
                ", status='" + status + '\'' +
                ", errorMessage='" + errorMessage + '\'' +
                '}';
    }
}